﻿using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using ProjetoSolo.QueroGas.Aplicacao.Servicos;
using ProjetoSolo.QueroGas.Dominio.Entidades;

namespace QueroGas.Teste
{
    [TestClass]
    public class TesteServicoEndereco
    {
        [TestMethod]
        public void BuscarPorCep()
        {
            try
            {
                Endereco endereco = ServicoEndereco.BuscarPorCep("70322915");
                Console.WriteLine("CEP: " + endereco.Cep);
                Console.WriteLine("Estado: " + endereco.Estado);
                Console.WriteLine("Cidade: " + endereco.Cidade);
                Console.WriteLine("Bairro: " + endereco.Bairro);
                Console.WriteLine("Logradouro: " + endereco.Logradouro);  
                Console.WriteLine("Complemento: " + endereco.Complemento);
            }
            catch (Exception ex)
            {
                Assert.Fail("O teste falhou! " + ex.Message);
            }
        }


        [TestMethod]
        public void BuscarEstados()
        {
            try
            {
                IEnumerable<String> listaEstados = ServicoEndereco.BuscarEstadosDeEmpresasAtivas();

                foreach (var estado in listaEstados)
                {
                    Console.WriteLine(estado);
                }
            }
            catch (Exception ex)
            {
                Assert.Fail("O teste falhou! " + ex.Message);
            }
        }

        [TestMethod]
        public void BuscarCidadesPorEstado()
        {
            try
            {
                IEnumerable<String> listaCidades = ServicoEndereco.BuscarCidadesDeEmpresasAtivas("DF");

                foreach (var cidade in listaCidades)
                {
                    Console.WriteLine(cidade);
                }
            }
            catch (Exception ex)
            {
                Assert.Fail("O teste falhou! " + ex.Message);
            }
        }

        [TestMethod]
        public void BuscarBairrosPorCidade()
        {
            try
            {
                IEnumerable<String> listaBairros = ServicoEndereco.BuscarBairrosDeEmpresasAtivas("DF", "Samambaia");

                foreach (var bairro in listaBairros)
                {
                    Console.WriteLine(bairro);
                }
            }
            catch (Exception ex)
            {
                Assert.Fail("O teste falhou! " + ex.Message);
            }
        }

        [TestMethod]
        public void BuscarBairrosECidades()
        {
            try
            {
                IEnumerable<Endereco> enderecos = ServicoEndereco.BuscarBairrosECidades();

                foreach (var endereco in enderecos)
                {
                    Console.WriteLine(endereco.Bairro + " - " + endereco.Cidade);
                }
            }
            catch (Exception ex)
            {
                Assert.Fail("O teste falhou! " + ex.Message);
            }
        }
    }
}
